package temp.camera;

import java.io.File;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.nio.file.StandardCopyOption;
import java.util.Locale;
import java.util.Objects;

import static temp.camera.ConfigParam.*;

/**
 * 拷贝：对所有文件，按照不同文件类型，放到不同文件夹
 */
public class CopyAllFiles {


    @lombok.SneakyThrows
    public static void main(String[] args) {
        System.out.println("\n******************************************************** 开始分类型拷贝所有文件 ********************************************************");
        for (File file : Objects.requireNonNull(new File(SOURCE_DIR).listFiles())) {
            String sourceFileName = file.getName();
            if (sourceFileName.startsWith(".")) {
                // 忽略隐藏文件
                continue;
            }
            Path sorucePath = file.toPath();
            String fileType = sourceFileName.split("\\.")[1].toLowerCase(Locale.ROOT);
            String allFileDir = "";
            switch (fileType) {
                case "rw2":
                    allFileDir = ALL_FILE_BASE_DIR + File.separator + "rw2";
                    break;
                case "jpg":
                    allFileDir = ALL_FILE_BASE_DIR + File.separator + "jpg";
                    break;
                case "mp4":
                    allFileDir = ALL_FILE_BASE_DIR + File.separator + "mp4";
                    break;
                case "mov":
                    allFileDir = ALL_FILE_BASE_DIR + File.separator + "mov";
                    break;
                default:
                    continue;
            }
            new File(allFileDir).mkdirs();
            Path targetPath = Paths.get(allFileDir + File.separator + sourceFileName);
            System.out.println("原始文件路径：" + sorucePath + "，拷贝文件路径：" + targetPath);
            Files.copy(sorucePath, targetPath, StandardCopyOption.REPLACE_EXISTING);
        }
        System.out.println("******************************************************** 分类型拷贝所有文件结束 ********************************************************");
    }

}
